{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Experiment\n",
    "Run Hebbian pruning with non-binary activations.\n",
    "\n",
    "### Motivation\n",
    "Attempt pruning given intuition offered up in \"Memory Aware Synapses\" paper:\n",
    "     * The weights with higher coactivations computed as $x_i \\times x_j$\n",
    "     have a greater effect on the L2 norm of the layers output. Here $x_i$ and $x_j$ are\n",
    "     the input and output activations respectively. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The autoreload extension is already loaded. To reload it, use:\n",
      "  %reload_ext autoreload\n"
     ]
    }
   ],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append(\"../../\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import absolute_import\n",
    "from __future__ import division\n",
    "from __future__ import print_function\n",
    "\n",
    "import os\n",
    "import glob\n",
    "import tabulate\n",
    "import pprint\n",
    "import click\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from ray.tune.commands import *\n",
    "from nupic.research.frameworks.dynamic_sparse.common.browser import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True /Users/mcaporale/nta/results/gsc-trials-2019-10-02/gsc-BaseModel\n",
      "True /Users/mcaporale/nta/results/gsc-trials-2019-10-02/gsc-Heb\n",
      "True /Users/mcaporale/nta/results/gsc-trials-2019-10-02/gsc-SET\n",
      "True /Users/mcaporale/nta/results/gsc-trials-2019-10-02/gsc-Static\n",
      "exp_name /Users/mcaporale/nta/results/gsc-trials-2019-10-02/gsc-BaseModel/experiment_state-2019-10-03_02-48-06.json\n",
      "exp_name /Users/mcaporale/nta/results/gsc-trials-2019-10-02/gsc-Heb/experiment_state-2019-10-03_02-48-06.json\n",
      "exp_name /Users/mcaporale/nta/results/gsc-trials-2019-10-02/gsc-SET/experiment_state-2019-10-03_02-48-06.json\n",
      "exp_name /Users/mcaporale/nta/results/gsc-trials-2019-10-02/gsc-Static/experiment_state-2019-10-03_02-48-06.json\n"
     ]
    }
   ],
   "source": [
    "base = 'gsc-trials-2019-10-02'\n",
    "exps = [\n",
    "    os.path.join(base, exp) for exp in [\n",
    "        'gsc-BaseModel', \n",
    "        'gsc-Heb',\n",
    "        'gsc-SET',\n",
    "        'gsc-Static',\n",
    "    ]\n",
    "]\n",
    "    \n",
    "paths = [os.path.expanduser(\"~/nta/results/{}\".format(e)) for e in exps]\n",
    "for p in paths:\n",
    "    print(os.path.exists(p), p)\n",
    "df = load_many(paths)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [],
   "source": [
    "def leqauls(l1, l2):\n",
    "    \"\"\"\n",
    "    See if two list are the same.\n",
    "    \"\"\"\n",
    "    if len(l1) != len(l2):\n",
    "        return False\n",
    "    for i1, i2 in zip(l1, l1):\n",
    "        if i1 != i2:\n",
    "            return False\n",
    "    \n",
    "    return True\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Experiment Name</th>\n",
       "      <th>train_acc_max</th>\n",
       "      <th>train_acc_max_epoch</th>\n",
       "      <th>train_acc_min</th>\n",
       "      <th>train_acc_min_epoch</th>\n",
       "      <th>train_acc_median</th>\n",
       "      <th>train_acc_last</th>\n",
       "      <th>val_acc_max</th>\n",
       "      <th>val_acc_max_epoch</th>\n",
       "      <th>val_acc_min</th>\n",
       "      <th>...</th>\n",
       "      <th>optim_alg</th>\n",
       "      <th>test_noise</th>\n",
       "      <th>weight_decay</th>\n",
       "      <th>hebbian_grow</th>\n",
       "      <th>hebbian_prune_perc</th>\n",
       "      <th>moving_average_alpha</th>\n",
       "      <th>on_perc</th>\n",
       "      <th>prune_methods</th>\n",
       "      <th>use_binary_coactivations</th>\n",
       "      <th>weight_prune_perc</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0_model=BaseModel</td>\n",
       "      <td>0.955327</td>\n",
       "      <td>29</td>\n",
       "      <td>0.673958</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943755</td>\n",
       "      <td>0.955327</td>\n",
       "      <td>0.964314</td>\n",
       "      <td>27</td>\n",
       "      <td>0.900561</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1_model=BaseModel</td>\n",
       "      <td>0.954985</td>\n",
       "      <td>26</td>\n",
       "      <td>0.649107</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940997</td>\n",
       "      <td>0.952202</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>20</td>\n",
       "      <td>0.889735</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2_model=BaseModel</td>\n",
       "      <td>0.953423</td>\n",
       "      <td>27</td>\n",
       "      <td>0.649497</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942535</td>\n",
       "      <td>0.952153</td>\n",
       "      <td>0.969928</td>\n",
       "      <td>20</td>\n",
       "      <td>0.899759</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3_model=BaseModel</td>\n",
       "      <td>0.954692</td>\n",
       "      <td>26</td>\n",
       "      <td>0.666146</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941095</td>\n",
       "      <td>0.953569</td>\n",
       "      <td>0.966720</td>\n",
       "      <td>25</td>\n",
       "      <td>0.882919</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4_model=BaseModel</td>\n",
       "      <td>0.957035</td>\n",
       "      <td>25</td>\n",
       "      <td>0.641246</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944415</td>\n",
       "      <td>0.955766</td>\n",
       "      <td>0.965517</td>\n",
       "      <td>26</td>\n",
       "      <td>0.886127</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.955375</td>\n",
       "      <td>27</td>\n",
       "      <td>0.646763</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942755</td>\n",
       "      <td>0.953862</td>\n",
       "      <td>0.962711</td>\n",
       "      <td>13</td>\n",
       "      <td>0.888132</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.951323</td>\n",
       "      <td>25</td>\n",
       "      <td>0.663802</td>\n",
       "      <td>0</td>\n",
       "      <td>0.937482</td>\n",
       "      <td>0.948443</td>\n",
       "      <td>0.965517</td>\n",
       "      <td>27</td>\n",
       "      <td>0.876103</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.953374</td>\n",
       "      <td>29</td>\n",
       "      <td>0.643004</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941851</td>\n",
       "      <td>0.953374</td>\n",
       "      <td>0.965517</td>\n",
       "      <td>29</td>\n",
       "      <td>0.877306</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>3_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.952690</td>\n",
       "      <td>24</td>\n",
       "      <td>0.686993</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941949</td>\n",
       "      <td>0.951714</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>29</td>\n",
       "      <td>0.891740</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>4_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.954692</td>\n",
       "      <td>27</td>\n",
       "      <td>0.650327</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943145</td>\n",
       "      <td>0.953423</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>21</td>\n",
       "      <td>0.895750</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>5_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.951958</td>\n",
       "      <td>27</td>\n",
       "      <td>0.658725</td>\n",
       "      <td>0</td>\n",
       "      <td>0.939483</td>\n",
       "      <td>0.951860</td>\n",
       "      <td>0.961909</td>\n",
       "      <td>19</td>\n",
       "      <td>0.885325</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>6_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.956498</td>\n",
       "      <td>27</td>\n",
       "      <td>0.686554</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943170</td>\n",
       "      <td>0.953569</td>\n",
       "      <td>0.964314</td>\n",
       "      <td>19</td>\n",
       "      <td>0.892141</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>7_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.951616</td>\n",
       "      <td>26</td>\n",
       "      <td>0.670833</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940094</td>\n",
       "      <td>0.949565</td>\n",
       "      <td>0.960706</td>\n",
       "      <td>18</td>\n",
       "      <td>0.898957</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>8_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.955327</td>\n",
       "      <td>24</td>\n",
       "      <td>0.673714</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944878</td>\n",
       "      <td>0.955278</td>\n",
       "      <td>0.962310</td>\n",
       "      <td>26</td>\n",
       "      <td>0.910986</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>9_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.953764</td>\n",
       "      <td>27</td>\n",
       "      <td>0.673079</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942388</td>\n",
       "      <td>0.952983</td>\n",
       "      <td>0.967121</td>\n",
       "      <td>16</td>\n",
       "      <td>0.892943</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>0_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.957231</td>\n",
       "      <td>27</td>\n",
       "      <td>0.680988</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943951</td>\n",
       "      <td>0.954057</td>\n",
       "      <td>0.967923</td>\n",
       "      <td>29</td>\n",
       "      <td>0.892542</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>1_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.952446</td>\n",
       "      <td>27</td>\n",
       "      <td>0.659604</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941583</td>\n",
       "      <td>0.950786</td>\n",
       "      <td>0.961909</td>\n",
       "      <td>26</td>\n",
       "      <td>0.884122</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.955620</td>\n",
       "      <td>29</td>\n",
       "      <td>0.670735</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943340</td>\n",
       "      <td>0.955620</td>\n",
       "      <td>0.966319</td>\n",
       "      <td>27</td>\n",
       "      <td>0.899358</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>3_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.953862</td>\n",
       "      <td>24</td>\n",
       "      <td>0.682746</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941290</td>\n",
       "      <td>0.953276</td>\n",
       "      <td>0.967121</td>\n",
       "      <td>21</td>\n",
       "      <td>0.901764</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>4_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.954692</td>\n",
       "      <td>27</td>\n",
       "      <td>0.670052</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941021</td>\n",
       "      <td>0.951665</td>\n",
       "      <td>0.966319</td>\n",
       "      <td>29</td>\n",
       "      <td>0.887731</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>5_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.954301</td>\n",
       "      <td>29</td>\n",
       "      <td>0.677375</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940436</td>\n",
       "      <td>0.954301</td>\n",
       "      <td>0.961107</td>\n",
       "      <td>21</td>\n",
       "      <td>0.893745</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>6_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.955815</td>\n",
       "      <td>29</td>\n",
       "      <td>0.674251</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944317</td>\n",
       "      <td>0.955815</td>\n",
       "      <td>0.962310</td>\n",
       "      <td>22</td>\n",
       "      <td>0.900160</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>7_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.954155</td>\n",
       "      <td>26</td>\n",
       "      <td>0.680402</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941388</td>\n",
       "      <td>0.952837</td>\n",
       "      <td>0.959503</td>\n",
       "      <td>22</td>\n",
       "      <td>0.889735</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>8_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.956498</td>\n",
       "      <td>25</td>\n",
       "      <td>0.653989</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942437</td>\n",
       "      <td>0.956205</td>\n",
       "      <td>0.966319</td>\n",
       "      <td>24</td>\n",
       "      <td>0.883320</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>9_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.951714</td>\n",
       "      <td>27</td>\n",
       "      <td>0.685187</td>\n",
       "      <td>0</td>\n",
       "      <td>0.939215</td>\n",
       "      <td>0.951274</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>25</td>\n",
       "      <td>0.888532</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>None-None-dynamic-linear-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>0_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.956352</td>\n",
       "      <td>27</td>\n",
       "      <td>0.636266</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940851</td>\n",
       "      <td>0.952495</td>\n",
       "      <td>0.963111</td>\n",
       "      <td>26</td>\n",
       "      <td>0.882518</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>1_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.953130</td>\n",
       "      <td>27</td>\n",
       "      <td>0.673421</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942047</td>\n",
       "      <td>0.952300</td>\n",
       "      <td>0.964715</td>\n",
       "      <td>26</td>\n",
       "      <td>0.890938</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>2_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.955571</td>\n",
       "      <td>27</td>\n",
       "      <td>0.677619</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942657</td>\n",
       "      <td>0.952593</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>22</td>\n",
       "      <td>0.895750</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>3_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.953178</td>\n",
       "      <td>29</td>\n",
       "      <td>0.656186</td>\n",
       "      <td>0</td>\n",
       "      <td>0.939557</td>\n",
       "      <td>0.953178</td>\n",
       "      <td>0.962310</td>\n",
       "      <td>22</td>\n",
       "      <td>0.891339</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>4_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.956450</td>\n",
       "      <td>25</td>\n",
       "      <td>0.648960</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944195</td>\n",
       "      <td>0.954692</td>\n",
       "      <td>0.968324</td>\n",
       "      <td>29</td>\n",
       "      <td>0.891339</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>5_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.955083</td>\n",
       "      <td>27</td>\n",
       "      <td>0.683527</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942095</td>\n",
       "      <td>0.952104</td>\n",
       "      <td>0.965116</td>\n",
       "      <td>27</td>\n",
       "      <td>0.885325</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>6_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.955278</td>\n",
       "      <td>27</td>\n",
       "      <td>0.656869</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941680</td>\n",
       "      <td>0.955229</td>\n",
       "      <td>0.965517</td>\n",
       "      <td>21</td>\n",
       "      <td>0.887330</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>7_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.952837</td>\n",
       "      <td>27</td>\n",
       "      <td>0.664388</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940704</td>\n",
       "      <td>0.952593</td>\n",
       "      <td>0.963111</td>\n",
       "      <td>19</td>\n",
       "      <td>0.894948</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>8_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.955913</td>\n",
       "      <td>27</td>\n",
       "      <td>0.675813</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944781</td>\n",
       "      <td>0.955668</td>\n",
       "      <td>0.965918</td>\n",
       "      <td>24</td>\n",
       "      <td>0.900160</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.4-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>9_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.952202</td>\n",
       "      <td>26</td>\n",
       "      <td>0.681086</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941436</td>\n",
       "      <td>0.950395</td>\n",
       "      <td>0.962310</td>\n",
       "      <td>15</td>\n",
       "      <td>0.893745</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>None-None-0.1-None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>35 rows × 42 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                      Experiment Name  train_acc_max  \\\n",
       "0                                   0_model=BaseModel       0.955327   \n",
       "1                                   1_model=BaseModel       0.954985   \n",
       "2                                   2_model=BaseModel       0.953423   \n",
       "3                                   3_model=BaseModel       0.954692   \n",
       "4                                   4_model=BaseModel       0.957035   \n",
       "5   0_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.955375   \n",
       "6   1_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.951323   \n",
       "7   2_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.953374   \n",
       "8   3_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.952690   \n",
       "9   4_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.954692   \n",
       "10  5_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.951958   \n",
       "11  6_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.956498   \n",
       "12  7_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.951616   \n",
       "13  8_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.955327   \n",
       "14  9_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.953764   \n",
       "15  0_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.957231   \n",
       "16  1_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.952446   \n",
       "17  2_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.955620   \n",
       "18  3_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.953862   \n",
       "19  4_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.954692   \n",
       "20  5_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.954301   \n",
       "21  6_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.955815   \n",
       "22  7_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.954155   \n",
       "23  8_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.956498   \n",
       "24  9_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.951714   \n",
       "25  0_model=SparseModel,on_perc=[None, None, 0.4, ...       0.956352   \n",
       "26  1_model=SparseModel,on_perc=[None, None, 0.1, ...       0.953130   \n",
       "27  2_model=SparseModel,on_perc=[None, None, 0.4, ...       0.955571   \n",
       "28  3_model=SparseModel,on_perc=[None, None, 0.1, ...       0.953178   \n",
       "29  4_model=SparseModel,on_perc=[None, None, 0.4, ...       0.956450   \n",
       "30  5_model=SparseModel,on_perc=[None, None, 0.1, ...       0.955083   \n",
       "31  6_model=SparseModel,on_perc=[None, None, 0.4, ...       0.955278   \n",
       "32  7_model=SparseModel,on_perc=[None, None, 0.1, ...       0.952837   \n",
       "33  8_model=SparseModel,on_perc=[None, None, 0.4, ...       0.955913   \n",
       "34  9_model=SparseModel,on_perc=[None, None, 0.1, ...       0.952202   \n",
       "\n",
       "    train_acc_max_epoch  train_acc_min  train_acc_min_epoch  train_acc_median  \\\n",
       "0                    29       0.673958                    0          0.943755   \n",
       "1                    26       0.649107                    0          0.940997   \n",
       "2                    27       0.649497                    0          0.942535   \n",
       "3                    26       0.666146                    0          0.941095   \n",
       "4                    25       0.641246                    0          0.944415   \n",
       "5                    27       0.646763                    0          0.942755   \n",
       "6                    25       0.663802                    0          0.937482   \n",
       "7                    29       0.643004                    0          0.941851   \n",
       "8                    24       0.686993                    0          0.941949   \n",
       "9                    27       0.650327                    0          0.943145   \n",
       "10                   27       0.658725                    0          0.939483   \n",
       "11                   27       0.686554                    0          0.943170   \n",
       "12                   26       0.670833                    0          0.940094   \n",
       "13                   24       0.673714                    0          0.944878   \n",
       "14                   27       0.673079                    0          0.942388   \n",
       "15                   27       0.680988                    0          0.943951   \n",
       "16                   27       0.659604                    0          0.941583   \n",
       "17                   29       0.670735                    0          0.943340   \n",
       "18                   24       0.682746                    0          0.941290   \n",
       "19                   27       0.670052                    0          0.941021   \n",
       "20                   29       0.677375                    0          0.940436   \n",
       "21                   29       0.674251                    0          0.944317   \n",
       "22                   26       0.680402                    0          0.941388   \n",
       "23                   25       0.653989                    0          0.942437   \n",
       "24                   27       0.685187                    0          0.939215   \n",
       "25                   27       0.636266                    0          0.940851   \n",
       "26                   27       0.673421                    0          0.942047   \n",
       "27                   27       0.677619                    0          0.942657   \n",
       "28                   29       0.656186                    0          0.939557   \n",
       "29                   25       0.648960                    0          0.944195   \n",
       "30                   27       0.683527                    0          0.942095   \n",
       "31                   27       0.656869                    0          0.941680   \n",
       "32                   27       0.664388                    0          0.940704   \n",
       "33                   27       0.675813                    0          0.944781   \n",
       "34                   26       0.681086                    0          0.941436   \n",
       "\n",
       "    train_acc_last  val_acc_max  val_acc_max_epoch  val_acc_min  ...  \\\n",
       "0         0.955327     0.964314                 27     0.900561  ...   \n",
       "1         0.952202     0.963512                 20     0.889735  ...   \n",
       "2         0.952153     0.969928                 20     0.899759  ...   \n",
       "3         0.953569     0.966720                 25     0.882919  ...   \n",
       "4         0.955766     0.965517                 26     0.886127  ...   \n",
       "5         0.953862     0.962711                 13     0.888132  ...   \n",
       "6         0.948443     0.965517                 27     0.876103  ...   \n",
       "7         0.953374     0.965517                 29     0.877306  ...   \n",
       "8         0.951714     0.963512                 29     0.891740  ...   \n",
       "9         0.953423     0.963512                 21     0.895750  ...   \n",
       "10        0.951860     0.961909                 19     0.885325  ...   \n",
       "11        0.953569     0.964314                 19     0.892141  ...   \n",
       "12        0.949565     0.960706                 18     0.898957  ...   \n",
       "13        0.955278     0.962310                 26     0.910986  ...   \n",
       "14        0.952983     0.967121                 16     0.892943  ...   \n",
       "15        0.954057     0.967923                 29     0.892542  ...   \n",
       "16        0.950786     0.961909                 26     0.884122  ...   \n",
       "17        0.955620     0.966319                 27     0.899358  ...   \n",
       "18        0.953276     0.967121                 21     0.901764  ...   \n",
       "19        0.951665     0.966319                 29     0.887731  ...   \n",
       "20        0.954301     0.961107                 21     0.893745  ...   \n",
       "21        0.955815     0.962310                 22     0.900160  ...   \n",
       "22        0.952837     0.959503                 22     0.889735  ...   \n",
       "23        0.956205     0.966319                 24     0.883320  ...   \n",
       "24        0.951274     0.963512                 25     0.888532  ...   \n",
       "25        0.952495     0.963111                 26     0.882518  ...   \n",
       "26        0.952300     0.964715                 26     0.890938  ...   \n",
       "27        0.952593     0.963512                 22     0.895750  ...   \n",
       "28        0.953178     0.962310                 22     0.891339  ...   \n",
       "29        0.954692     0.968324                 29     0.891339  ...   \n",
       "30        0.952104     0.965116                 27     0.885325  ...   \n",
       "31        0.955229     0.965517                 21     0.887330  ...   \n",
       "32        0.952593     0.963111                 19     0.894948  ...   \n",
       "33        0.955668     0.965918                 24     0.900160  ...   \n",
       "34        0.950395     0.962310                 15     0.893745  ...   \n",
       "\n",
       "    optim_alg  test_noise  weight_decay hebbian_grow  hebbian_prune_perc  \\\n",
       "0         SGD       False          0.01          NaN                 NaN   \n",
       "1         SGD       False          0.01          NaN                 NaN   \n",
       "2         SGD       False          0.01          NaN                 NaN   \n",
       "3         SGD       False          0.01          NaN                 NaN   \n",
       "4         SGD       False          0.01          NaN                 NaN   \n",
       "5         SGD       False          0.01         True                 0.3   \n",
       "6         SGD       False          0.01         True                 0.3   \n",
       "7         SGD       False          0.01         True                 0.3   \n",
       "8         SGD       False          0.01         True                 0.3   \n",
       "9         SGD       False          0.01         True                 0.3   \n",
       "10        SGD       False          0.01         True                 0.3   \n",
       "11        SGD       False          0.01         True                 0.3   \n",
       "12        SGD       False          0.01         True                 0.3   \n",
       "13        SGD       False          0.01         True                 0.3   \n",
       "14        SGD       False          0.01         True                 0.3   \n",
       "15        SGD       False          0.01        False                None   \n",
       "16        SGD       False          0.01        False                None   \n",
       "17        SGD       False          0.01        False                None   \n",
       "18        SGD       False          0.01        False                None   \n",
       "19        SGD       False          0.01        False                None   \n",
       "20        SGD       False          0.01        False                None   \n",
       "21        SGD       False          0.01        False                None   \n",
       "22        SGD       False          0.01        False                None   \n",
       "23        SGD       False          0.01        False                None   \n",
       "24        SGD       False          0.01        False                None   \n",
       "25        SGD       False          0.01          NaN                 NaN   \n",
       "26        SGD       False          0.01          NaN                 NaN   \n",
       "27        SGD       False          0.01          NaN                 NaN   \n",
       "28        SGD       False          0.01          NaN                 NaN   \n",
       "29        SGD       False          0.01          NaN                 NaN   \n",
       "30        SGD       False          0.01          NaN                 NaN   \n",
       "31        SGD       False          0.01          NaN                 NaN   \n",
       "32        SGD       False          0.01          NaN                 NaN   \n",
       "33        SGD       False          0.01          NaN                 NaN   \n",
       "34        SGD       False          0.01          NaN                 NaN   \n",
       "\n",
       "   moving_average_alpha             on_perc                  prune_methods  \\\n",
       "0                   NaN                 NaN                            NaN   \n",
       "1                   NaN                 NaN                            NaN   \n",
       "2                   NaN                 NaN                            NaN   \n",
       "3                   NaN                 NaN                            NaN   \n",
       "4                   NaN                 NaN                            NaN   \n",
       "5                   0.6  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "6                   0.6  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "7                   0.6  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "8                   0.6  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "9                   0.6  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "10                  0.6  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "11                  0.6  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "12                  0.6  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "13                  0.6  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "14                  0.6  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "15                  NaN  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "16                  NaN  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "17                  NaN  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "18                  NaN  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "19                  NaN  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "20                  NaN  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "21                  NaN  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "22                  NaN  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "23                  NaN  None-None-0.4-None  None-None-dynamic-linear-None   \n",
       "24                  NaN  None-None-0.1-None  None-None-dynamic-linear-None   \n",
       "25                  NaN  None-None-0.4-None                            NaN   \n",
       "26                  NaN  None-None-0.1-None                            NaN   \n",
       "27                  NaN  None-None-0.4-None                            NaN   \n",
       "28                  NaN  None-None-0.1-None                            NaN   \n",
       "29                  NaN  None-None-0.4-None                            NaN   \n",
       "30                  NaN  None-None-0.1-None                            NaN   \n",
       "31                  NaN  None-None-0.4-None                            NaN   \n",
       "32                  NaN  None-None-0.1-None                            NaN   \n",
       "33                  NaN  None-None-0.4-None                            NaN   \n",
       "34                  NaN  None-None-0.1-None                            NaN   \n",
       "\n",
       "    use_binary_coactivations  weight_prune_perc  \n",
       "0                        NaN                NaN  \n",
       "1                        NaN                NaN  \n",
       "2                        NaN                NaN  \n",
       "3                        NaN                NaN  \n",
       "4                        NaN                NaN  \n",
       "5                      False               None  \n",
       "6                      False               None  \n",
       "7                      False               None  \n",
       "8                      False               None  \n",
       "9                      False               None  \n",
       "10                     False               None  \n",
       "11                     False               None  \n",
       "12                     False               None  \n",
       "13                     False               None  \n",
       "14                     False               None  \n",
       "15                       NaN                0.3  \n",
       "16                       NaN                0.3  \n",
       "17                       NaN                0.3  \n",
       "18                       NaN                0.3  \n",
       "19                       NaN                0.3  \n",
       "20                       NaN                0.3  \n",
       "21                       NaN                0.3  \n",
       "22                       NaN                0.3  \n",
       "23                       NaN                0.3  \n",
       "24                       NaN                0.3  \n",
       "25                       NaN                NaN  \n",
       "26                       NaN                NaN  \n",
       "27                       NaN                NaN  \n",
       "28                       NaN                NaN  \n",
       "29                       NaN                NaN  \n",
       "30                       NaN                NaN  \n",
       "31                       NaN                NaN  \n",
       "32                       NaN                NaN  \n",
       "33                       NaN                NaN  \n",
       "34                       NaN                NaN  \n",
       "\n",
       "[35 rows x 42 columns]"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [],
   "source": [
    "# remove nans where appropriate\n",
    "df['hebbian_prune_perc'] = df['hebbian_prune_perc'].replace(np.nan, 0.0, regex=True)\n",
    "df['weight_prune_perc'] = df['weight_prune_perc'].replace(np.nan, 0.0, regex=True)\n",
    "\n",
    "# distill certain values \n",
    "df['on_perc'] = df['on_perc'].replace('None-None-0.1-None', 0.1, regex=True)\n",
    "df['on_perc'] = df['on_perc'].replace('None-None-0.4-None', 0.4, regex=True)\n",
    "df['prune_methods'] = df['prune_methods'].replace('None-None-dynamic-linear-None', 'dynamic-linear', regex=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Experiment Name</th>\n",
       "      <th>train_acc_max</th>\n",
       "      <th>train_acc_max_epoch</th>\n",
       "      <th>train_acc_min</th>\n",
       "      <th>train_acc_min_epoch</th>\n",
       "      <th>train_acc_median</th>\n",
       "      <th>train_acc_last</th>\n",
       "      <th>val_acc_max</th>\n",
       "      <th>val_acc_max_epoch</th>\n",
       "      <th>val_acc_min</th>\n",
       "      <th>...</th>\n",
       "      <th>optim_alg</th>\n",
       "      <th>test_noise</th>\n",
       "      <th>weight_decay</th>\n",
       "      <th>hebbian_grow</th>\n",
       "      <th>hebbian_prune_perc</th>\n",
       "      <th>moving_average_alpha</th>\n",
       "      <th>on_perc</th>\n",
       "      <th>prune_methods</th>\n",
       "      <th>use_binary_coactivations</th>\n",
       "      <th>weight_prune_perc</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0_model=BaseModel</td>\n",
       "      <td>0.955327</td>\n",
       "      <td>29</td>\n",
       "      <td>0.673958</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943755</td>\n",
       "      <td>0.955327</td>\n",
       "      <td>0.964314</td>\n",
       "      <td>27</td>\n",
       "      <td>0.900561</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1_model=BaseModel</td>\n",
       "      <td>0.954985</td>\n",
       "      <td>26</td>\n",
       "      <td>0.649107</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940997</td>\n",
       "      <td>0.952202</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>20</td>\n",
       "      <td>0.889735</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2_model=BaseModel</td>\n",
       "      <td>0.953423</td>\n",
       "      <td>27</td>\n",
       "      <td>0.649497</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942535</td>\n",
       "      <td>0.952153</td>\n",
       "      <td>0.969928</td>\n",
       "      <td>20</td>\n",
       "      <td>0.899759</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3_model=BaseModel</td>\n",
       "      <td>0.954692</td>\n",
       "      <td>26</td>\n",
       "      <td>0.666146</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941095</td>\n",
       "      <td>0.953569</td>\n",
       "      <td>0.966720</td>\n",
       "      <td>25</td>\n",
       "      <td>0.882919</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4_model=BaseModel</td>\n",
       "      <td>0.957035</td>\n",
       "      <td>25</td>\n",
       "      <td>0.641246</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944415</td>\n",
       "      <td>0.955766</td>\n",
       "      <td>0.965517</td>\n",
       "      <td>26</td>\n",
       "      <td>0.886127</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.955375</td>\n",
       "      <td>27</td>\n",
       "      <td>0.646763</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942755</td>\n",
       "      <td>0.953862</td>\n",
       "      <td>0.962711</td>\n",
       "      <td>13</td>\n",
       "      <td>0.888132</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.951323</td>\n",
       "      <td>25</td>\n",
       "      <td>0.663802</td>\n",
       "      <td>0</td>\n",
       "      <td>0.937482</td>\n",
       "      <td>0.948443</td>\n",
       "      <td>0.965517</td>\n",
       "      <td>27</td>\n",
       "      <td>0.876103</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.953374</td>\n",
       "      <td>29</td>\n",
       "      <td>0.643004</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941851</td>\n",
       "      <td>0.953374</td>\n",
       "      <td>0.965517</td>\n",
       "      <td>29</td>\n",
       "      <td>0.877306</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>3_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.952690</td>\n",
       "      <td>24</td>\n",
       "      <td>0.686993</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941949</td>\n",
       "      <td>0.951714</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>29</td>\n",
       "      <td>0.891740</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>4_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.954692</td>\n",
       "      <td>27</td>\n",
       "      <td>0.650327</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943145</td>\n",
       "      <td>0.953423</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>21</td>\n",
       "      <td>0.895750</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>5_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.951958</td>\n",
       "      <td>27</td>\n",
       "      <td>0.658725</td>\n",
       "      <td>0</td>\n",
       "      <td>0.939483</td>\n",
       "      <td>0.951860</td>\n",
       "      <td>0.961909</td>\n",
       "      <td>19</td>\n",
       "      <td>0.885325</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>6_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.956498</td>\n",
       "      <td>27</td>\n",
       "      <td>0.686554</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943170</td>\n",
       "      <td>0.953569</td>\n",
       "      <td>0.964314</td>\n",
       "      <td>19</td>\n",
       "      <td>0.892141</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>7_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.951616</td>\n",
       "      <td>26</td>\n",
       "      <td>0.670833</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940094</td>\n",
       "      <td>0.949565</td>\n",
       "      <td>0.960706</td>\n",
       "      <td>18</td>\n",
       "      <td>0.898957</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>8_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.955327</td>\n",
       "      <td>24</td>\n",
       "      <td>0.673714</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944878</td>\n",
       "      <td>0.955278</td>\n",
       "      <td>0.962310</td>\n",
       "      <td>26</td>\n",
       "      <td>0.910986</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>9_model=DSNNMixedHeb,moving_average_alpha=0.6,...</td>\n",
       "      <td>0.953764</td>\n",
       "      <td>27</td>\n",
       "      <td>0.673079</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942388</td>\n",
       "      <td>0.952983</td>\n",
       "      <td>0.967121</td>\n",
       "      <td>16</td>\n",
       "      <td>0.892943</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>True</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>0_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.957231</td>\n",
       "      <td>27</td>\n",
       "      <td>0.680988</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943951</td>\n",
       "      <td>0.954057</td>\n",
       "      <td>0.967923</td>\n",
       "      <td>29</td>\n",
       "      <td>0.892542</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>1_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.952446</td>\n",
       "      <td>27</td>\n",
       "      <td>0.659604</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941583</td>\n",
       "      <td>0.950786</td>\n",
       "      <td>0.961909</td>\n",
       "      <td>26</td>\n",
       "      <td>0.884122</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.955620</td>\n",
       "      <td>29</td>\n",
       "      <td>0.670735</td>\n",
       "      <td>0</td>\n",
       "      <td>0.943340</td>\n",
       "      <td>0.955620</td>\n",
       "      <td>0.966319</td>\n",
       "      <td>27</td>\n",
       "      <td>0.899358</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>3_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.953862</td>\n",
       "      <td>24</td>\n",
       "      <td>0.682746</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941290</td>\n",
       "      <td>0.953276</td>\n",
       "      <td>0.967121</td>\n",
       "      <td>21</td>\n",
       "      <td>0.901764</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>4_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.954692</td>\n",
       "      <td>27</td>\n",
       "      <td>0.670052</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941021</td>\n",
       "      <td>0.951665</td>\n",
       "      <td>0.966319</td>\n",
       "      <td>29</td>\n",
       "      <td>0.887731</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>5_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.954301</td>\n",
       "      <td>29</td>\n",
       "      <td>0.677375</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940436</td>\n",
       "      <td>0.954301</td>\n",
       "      <td>0.961107</td>\n",
       "      <td>21</td>\n",
       "      <td>0.893745</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>6_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.955815</td>\n",
       "      <td>29</td>\n",
       "      <td>0.674251</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944317</td>\n",
       "      <td>0.955815</td>\n",
       "      <td>0.962310</td>\n",
       "      <td>22</td>\n",
       "      <td>0.900160</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>7_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.954155</td>\n",
       "      <td>26</td>\n",
       "      <td>0.680402</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941388</td>\n",
       "      <td>0.952837</td>\n",
       "      <td>0.959503</td>\n",
       "      <td>22</td>\n",
       "      <td>0.889735</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>8_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...</td>\n",
       "      <td>0.956498</td>\n",
       "      <td>25</td>\n",
       "      <td>0.653989</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942437</td>\n",
       "      <td>0.956205</td>\n",
       "      <td>0.966319</td>\n",
       "      <td>24</td>\n",
       "      <td>0.883320</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>9_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...</td>\n",
       "      <td>0.951714</td>\n",
       "      <td>27</td>\n",
       "      <td>0.685187</td>\n",
       "      <td>0</td>\n",
       "      <td>0.939215</td>\n",
       "      <td>0.951274</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>25</td>\n",
       "      <td>0.888532</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>False</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>dynamic-linear</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>0_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.956352</td>\n",
       "      <td>27</td>\n",
       "      <td>0.636266</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940851</td>\n",
       "      <td>0.952495</td>\n",
       "      <td>0.963111</td>\n",
       "      <td>26</td>\n",
       "      <td>0.882518</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>1_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.953130</td>\n",
       "      <td>27</td>\n",
       "      <td>0.673421</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942047</td>\n",
       "      <td>0.952300</td>\n",
       "      <td>0.964715</td>\n",
       "      <td>26</td>\n",
       "      <td>0.890938</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>2_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.955571</td>\n",
       "      <td>27</td>\n",
       "      <td>0.677619</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942657</td>\n",
       "      <td>0.952593</td>\n",
       "      <td>0.963512</td>\n",
       "      <td>22</td>\n",
       "      <td>0.895750</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>3_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.953178</td>\n",
       "      <td>29</td>\n",
       "      <td>0.656186</td>\n",
       "      <td>0</td>\n",
       "      <td>0.939557</td>\n",
       "      <td>0.953178</td>\n",
       "      <td>0.962310</td>\n",
       "      <td>22</td>\n",
       "      <td>0.891339</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>4_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.956450</td>\n",
       "      <td>25</td>\n",
       "      <td>0.648960</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944195</td>\n",
       "      <td>0.954692</td>\n",
       "      <td>0.968324</td>\n",
       "      <td>29</td>\n",
       "      <td>0.891339</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>5_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.955083</td>\n",
       "      <td>27</td>\n",
       "      <td>0.683527</td>\n",
       "      <td>0</td>\n",
       "      <td>0.942095</td>\n",
       "      <td>0.952104</td>\n",
       "      <td>0.965116</td>\n",
       "      <td>27</td>\n",
       "      <td>0.885325</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>6_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.955278</td>\n",
       "      <td>27</td>\n",
       "      <td>0.656869</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941680</td>\n",
       "      <td>0.955229</td>\n",
       "      <td>0.965517</td>\n",
       "      <td>21</td>\n",
       "      <td>0.887330</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>7_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.952837</td>\n",
       "      <td>27</td>\n",
       "      <td>0.664388</td>\n",
       "      <td>0</td>\n",
       "      <td>0.940704</td>\n",
       "      <td>0.952593</td>\n",
       "      <td>0.963111</td>\n",
       "      <td>19</td>\n",
       "      <td>0.894948</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>8_model=SparseModel,on_perc=[None, None, 0.4, ...</td>\n",
       "      <td>0.955913</td>\n",
       "      <td>27</td>\n",
       "      <td>0.675813</td>\n",
       "      <td>0</td>\n",
       "      <td>0.944781</td>\n",
       "      <td>0.955668</td>\n",
       "      <td>0.965918</td>\n",
       "      <td>24</td>\n",
       "      <td>0.900160</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>9_model=SparseModel,on_perc=[None, None, 0.1, ...</td>\n",
       "      <td>0.952202</td>\n",
       "      <td>26</td>\n",
       "      <td>0.681086</td>\n",
       "      <td>0</td>\n",
       "      <td>0.941436</td>\n",
       "      <td>0.950395</td>\n",
       "      <td>0.962310</td>\n",
       "      <td>15</td>\n",
       "      <td>0.893745</td>\n",
       "      <td>...</td>\n",
       "      <td>SGD</td>\n",
       "      <td>False</td>\n",
       "      <td>0.01</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>35 rows × 42 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                      Experiment Name  train_acc_max  \\\n",
       "0                                   0_model=BaseModel       0.955327   \n",
       "1                                   1_model=BaseModel       0.954985   \n",
       "2                                   2_model=BaseModel       0.953423   \n",
       "3                                   3_model=BaseModel       0.954692   \n",
       "4                                   4_model=BaseModel       0.957035   \n",
       "5   0_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.955375   \n",
       "6   1_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.951323   \n",
       "7   2_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.953374   \n",
       "8   3_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.952690   \n",
       "9   4_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.954692   \n",
       "10  5_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.951958   \n",
       "11  6_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.956498   \n",
       "12  7_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.951616   \n",
       "13  8_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.955327   \n",
       "14  9_model=DSNNMixedHeb,moving_average_alpha=0.6,...       0.953764   \n",
       "15  0_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.957231   \n",
       "16  1_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.952446   \n",
       "17  2_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.955620   \n",
       "18  3_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.953862   \n",
       "19  4_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.954692   \n",
       "20  5_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.954301   \n",
       "21  6_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.955815   \n",
       "22  7_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.954155   \n",
       "23  8_model=DSNNMixedHeb,on_perc=[None, None, 0.4,...       0.956498   \n",
       "24  9_model=DSNNMixedHeb,on_perc=[None, None, 0.1,...       0.951714   \n",
       "25  0_model=SparseModel,on_perc=[None, None, 0.4, ...       0.956352   \n",
       "26  1_model=SparseModel,on_perc=[None, None, 0.1, ...       0.953130   \n",
       "27  2_model=SparseModel,on_perc=[None, None, 0.4, ...       0.955571   \n",
       "28  3_model=SparseModel,on_perc=[None, None, 0.1, ...       0.953178   \n",
       "29  4_model=SparseModel,on_perc=[None, None, 0.4, ...       0.956450   \n",
       "30  5_model=SparseModel,on_perc=[None, None, 0.1, ...       0.955083   \n",
       "31  6_model=SparseModel,on_perc=[None, None, 0.4, ...       0.955278   \n",
       "32  7_model=SparseModel,on_perc=[None, None, 0.1, ...       0.952837   \n",
       "33  8_model=SparseModel,on_perc=[None, None, 0.4, ...       0.955913   \n",
       "34  9_model=SparseModel,on_perc=[None, None, 0.1, ...       0.952202   \n",
       "\n",
       "    train_acc_max_epoch  train_acc_min  train_acc_min_epoch  train_acc_median  \\\n",
       "0                    29       0.673958                    0          0.943755   \n",
       "1                    26       0.649107                    0          0.940997   \n",
       "2                    27       0.649497                    0          0.942535   \n",
       "3                    26       0.666146                    0          0.941095   \n",
       "4                    25       0.641246                    0          0.944415   \n",
       "5                    27       0.646763                    0          0.942755   \n",
       "6                    25       0.663802                    0          0.937482   \n",
       "7                    29       0.643004                    0          0.941851   \n",
       "8                    24       0.686993                    0          0.941949   \n",
       "9                    27       0.650327                    0          0.943145   \n",
       "10                   27       0.658725                    0          0.939483   \n",
       "11                   27       0.686554                    0          0.943170   \n",
       "12                   26       0.670833                    0          0.940094   \n",
       "13                   24       0.673714                    0          0.944878   \n",
       "14                   27       0.673079                    0          0.942388   \n",
       "15                   27       0.680988                    0          0.943951   \n",
       "16                   27       0.659604                    0          0.941583   \n",
       "17                   29       0.670735                    0          0.943340   \n",
       "18                   24       0.682746                    0          0.941290   \n",
       "19                   27       0.670052                    0          0.941021   \n",
       "20                   29       0.677375                    0          0.940436   \n",
       "21                   29       0.674251                    0          0.944317   \n",
       "22                   26       0.680402                    0          0.941388   \n",
       "23                   25       0.653989                    0          0.942437   \n",
       "24                   27       0.685187                    0          0.939215   \n",
       "25                   27       0.636266                    0          0.940851   \n",
       "26                   27       0.673421                    0          0.942047   \n",
       "27                   27       0.677619                    0          0.942657   \n",
       "28                   29       0.656186                    0          0.939557   \n",
       "29                   25       0.648960                    0          0.944195   \n",
       "30                   27       0.683527                    0          0.942095   \n",
       "31                   27       0.656869                    0          0.941680   \n",
       "32                   27       0.664388                    0          0.940704   \n",
       "33                   27       0.675813                    0          0.944781   \n",
       "34                   26       0.681086                    0          0.941436   \n",
       "\n",
       "    train_acc_last  val_acc_max  val_acc_max_epoch  val_acc_min  ...  \\\n",
       "0         0.955327     0.964314                 27     0.900561  ...   \n",
       "1         0.952202     0.963512                 20     0.889735  ...   \n",
       "2         0.952153     0.969928                 20     0.899759  ...   \n",
       "3         0.953569     0.966720                 25     0.882919  ...   \n",
       "4         0.955766     0.965517                 26     0.886127  ...   \n",
       "5         0.953862     0.962711                 13     0.888132  ...   \n",
       "6         0.948443     0.965517                 27     0.876103  ...   \n",
       "7         0.953374     0.965517                 29     0.877306  ...   \n",
       "8         0.951714     0.963512                 29     0.891740  ...   \n",
       "9         0.953423     0.963512                 21     0.895750  ...   \n",
       "10        0.951860     0.961909                 19     0.885325  ...   \n",
       "11        0.953569     0.964314                 19     0.892141  ...   \n",
       "12        0.949565     0.960706                 18     0.898957  ...   \n",
       "13        0.955278     0.962310                 26     0.910986  ...   \n",
       "14        0.952983     0.967121                 16     0.892943  ...   \n",
       "15        0.954057     0.967923                 29     0.892542  ...   \n",
       "16        0.950786     0.961909                 26     0.884122  ...   \n",
       "17        0.955620     0.966319                 27     0.899358  ...   \n",
       "18        0.953276     0.967121                 21     0.901764  ...   \n",
       "19        0.951665     0.966319                 29     0.887731  ...   \n",
       "20        0.954301     0.961107                 21     0.893745  ...   \n",
       "21        0.955815     0.962310                 22     0.900160  ...   \n",
       "22        0.952837     0.959503                 22     0.889735  ...   \n",
       "23        0.956205     0.966319                 24     0.883320  ...   \n",
       "24        0.951274     0.963512                 25     0.888532  ...   \n",
       "25        0.952495     0.963111                 26     0.882518  ...   \n",
       "26        0.952300     0.964715                 26     0.890938  ...   \n",
       "27        0.952593     0.963512                 22     0.895750  ...   \n",
       "28        0.953178     0.962310                 22     0.891339  ...   \n",
       "29        0.954692     0.968324                 29     0.891339  ...   \n",
       "30        0.952104     0.965116                 27     0.885325  ...   \n",
       "31        0.955229     0.965517                 21     0.887330  ...   \n",
       "32        0.952593     0.963111                 19     0.894948  ...   \n",
       "33        0.955668     0.965918                 24     0.900160  ...   \n",
       "34        0.950395     0.962310                 15     0.893745  ...   \n",
       "\n",
       "    optim_alg  test_noise  weight_decay hebbian_grow  hebbian_prune_perc  \\\n",
       "0         SGD       False          0.01          NaN                 0.0   \n",
       "1         SGD       False          0.01          NaN                 0.0   \n",
       "2         SGD       False          0.01          NaN                 0.0   \n",
       "3         SGD       False          0.01          NaN                 0.0   \n",
       "4         SGD       False          0.01          NaN                 0.0   \n",
       "5         SGD       False          0.01         True                 0.3   \n",
       "6         SGD       False          0.01         True                 0.3   \n",
       "7         SGD       False          0.01         True                 0.3   \n",
       "8         SGD       False          0.01         True                 0.3   \n",
       "9         SGD       False          0.01         True                 0.3   \n",
       "10        SGD       False          0.01         True                 0.3   \n",
       "11        SGD       False          0.01         True                 0.3   \n",
       "12        SGD       False          0.01         True                 0.3   \n",
       "13        SGD       False          0.01         True                 0.3   \n",
       "14        SGD       False          0.01         True                 0.3   \n",
       "15        SGD       False          0.01        False                 0.0   \n",
       "16        SGD       False          0.01        False                 0.0   \n",
       "17        SGD       False          0.01        False                 0.0   \n",
       "18        SGD       False          0.01        False                 0.0   \n",
       "19        SGD       False          0.01        False                 0.0   \n",
       "20        SGD       False          0.01        False                 0.0   \n",
       "21        SGD       False          0.01        False                 0.0   \n",
       "22        SGD       False          0.01        False                 0.0   \n",
       "23        SGD       False          0.01        False                 0.0   \n",
       "24        SGD       False          0.01        False                 0.0   \n",
       "25        SGD       False          0.01          NaN                 0.0   \n",
       "26        SGD       False          0.01          NaN                 0.0   \n",
       "27        SGD       False          0.01          NaN                 0.0   \n",
       "28        SGD       False          0.01          NaN                 0.0   \n",
       "29        SGD       False          0.01          NaN                 0.0   \n",
       "30        SGD       False          0.01          NaN                 0.0   \n",
       "31        SGD       False          0.01          NaN                 0.0   \n",
       "32        SGD       False          0.01          NaN                 0.0   \n",
       "33        SGD       False          0.01          NaN                 0.0   \n",
       "34        SGD       False          0.01          NaN                 0.0   \n",
       "\n",
       "   moving_average_alpha  on_perc   prune_methods  use_binary_coactivations  \\\n",
       "0                   NaN      NaN             NaN                       NaN   \n",
       "1                   NaN      NaN             NaN                       NaN   \n",
       "2                   NaN      NaN             NaN                       NaN   \n",
       "3                   NaN      NaN             NaN                       NaN   \n",
       "4                   NaN      NaN             NaN                       NaN   \n",
       "5                   0.6      0.4  dynamic-linear                     False   \n",
       "6                   0.6      0.1  dynamic-linear                     False   \n",
       "7                   0.6      0.4  dynamic-linear                     False   \n",
       "8                   0.6      0.1  dynamic-linear                     False   \n",
       "9                   0.6      0.4  dynamic-linear                     False   \n",
       "10                  0.6      0.1  dynamic-linear                     False   \n",
       "11                  0.6      0.4  dynamic-linear                     False   \n",
       "12                  0.6      0.1  dynamic-linear                     False   \n",
       "13                  0.6      0.4  dynamic-linear                     False   \n",
       "14                  0.6      0.1  dynamic-linear                     False   \n",
       "15                  NaN      0.4  dynamic-linear                       NaN   \n",
       "16                  NaN      0.1  dynamic-linear                       NaN   \n",
       "17                  NaN      0.4  dynamic-linear                       NaN   \n",
       "18                  NaN      0.1  dynamic-linear                       NaN   \n",
       "19                  NaN      0.4  dynamic-linear                       NaN   \n",
       "20                  NaN      0.1  dynamic-linear                       NaN   \n",
       "21                  NaN      0.4  dynamic-linear                       NaN   \n",
       "22                  NaN      0.1  dynamic-linear                       NaN   \n",
       "23                  NaN      0.4  dynamic-linear                       NaN   \n",
       "24                  NaN      0.1  dynamic-linear                       NaN   \n",
       "25                  NaN      0.4             NaN                       NaN   \n",
       "26                  NaN      0.1             NaN                       NaN   \n",
       "27                  NaN      0.4             NaN                       NaN   \n",
       "28                  NaN      0.1             NaN                       NaN   \n",
       "29                  NaN      0.4             NaN                       NaN   \n",
       "30                  NaN      0.1             NaN                       NaN   \n",
       "31                  NaN      0.4             NaN                       NaN   \n",
       "32                  NaN      0.1             NaN                       NaN   \n",
       "33                  NaN      0.4             NaN                       NaN   \n",
       "34                  NaN      0.1             NaN                       NaN   \n",
       "\n",
       "    weight_prune_perc  \n",
       "0                 0.0  \n",
       "1                 0.0  \n",
       "2                 0.0  \n",
       "3                 0.0  \n",
       "4                 0.0  \n",
       "5                 0.0  \n",
       "6                 0.0  \n",
       "7                 0.0  \n",
       "8                 0.0  \n",
       "9                 0.0  \n",
       "10                0.0  \n",
       "11                0.0  \n",
       "12                0.0  \n",
       "13                0.0  \n",
       "14                0.0  \n",
       "15                0.3  \n",
       "16                0.3  \n",
       "17                0.3  \n",
       "18                0.3  \n",
       "19                0.3  \n",
       "20                0.3  \n",
       "21                0.3  \n",
       "22                0.3  \n",
       "23                0.3  \n",
       "24                0.3  \n",
       "25                0.0  \n",
       "26                0.0  \n",
       "27                0.0  \n",
       "28                0.0  \n",
       "29                0.0  \n",
       "30                0.0  \n",
       "31                0.0  \n",
       "32                0.0  \n",
       "33                0.0  \n",
       "34                0.0  \n",
       "\n",
       "[35 rows x 42 columns]"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['Experiment Name', 'train_acc_max', 'train_acc_max_epoch',\n",
       "       'train_acc_min', 'train_acc_min_epoch', 'train_acc_median',\n",
       "       'train_acc_last', 'val_acc_max', 'val_acc_max_epoch', 'val_acc_min',\n",
       "       'val_acc_min_epoch', 'val_acc_median', 'val_acc_last', 'val_acc_all',\n",
       "       'epochs', 'experiment_file_name', 'trial_time', 'mean_epoch_time',\n",
       "       'batch_size_test', 'batch_size_train', 'data_dir', 'dataset_name',\n",
       "       'debug_sparse', 'debug_weights', 'device', 'learning_rate', 'lr_gamma',\n",
       "       'lr_scheduler', 'lr_step_size', 'model', 'momentum', 'network',\n",
       "       'optim_alg', 'test_noise', 'weight_decay', 'hebbian_grow',\n",
       "       'hebbian_prune_perc', 'moving_average_alpha', 'on_perc',\n",
       "       'prune_methods', 'use_binary_coactivations', 'weight_prune_perc'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(35, 42)"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Experiment Name             9_model=SparseModel,on_perc=[None, None, 0.1, ...\n",
       "train_acc_max                                                        0.952202\n",
       "train_acc_max_epoch                                                        26\n",
       "train_acc_min                                                        0.681086\n",
       "train_acc_min_epoch                                                         0\n",
       "train_acc_median                                                     0.941436\n",
       "train_acc_last                                                       0.950395\n",
       "val_acc_max                                                           0.96231\n",
       "val_acc_max_epoch                                                          15\n",
       "val_acc_min                                                          0.893745\n",
       "val_acc_min_epoch                                                           0\n",
       "val_acc_median                                                       0.957097\n",
       "val_acc_last                                                         0.960706\n",
       "val_acc_all                 0     0.893745\n",
       "1     0.894547\n",
       "2     0.925020\n",
       "3...\n",
       "epochs                                                                     30\n",
       "experiment_file_name        /Users/mcaporale/nta/results/gsc-trials-2019-1...\n",
       "trial_time                                                            5.56374\n",
       "mean_epoch_time                                                      0.185458\n",
       "batch_size_test                                                          1000\n",
       "batch_size_train                                                           16\n",
       "data_dir                                                   ~/nta/datasets/gsc\n",
       "dataset_name                                                  PreprocessedGSC\n",
       "debug_sparse                                                             True\n",
       "debug_weights                                                            True\n",
       "device                                                                   cuda\n",
       "learning_rate                                                            0.01\n",
       "lr_gamma                                                                  0.9\n",
       "lr_scheduler                                                           StepLR\n",
       "lr_step_size                                                                1\n",
       "model                                                             SparseModel\n",
       "momentum                                                                    0\n",
       "network                                                                GSCHeb\n",
       "optim_alg                                                                 SGD\n",
       "test_noise                                                              False\n",
       "weight_decay                                                             0.01\n",
       "hebbian_grow                                                              NaN\n",
       "hebbian_prune_perc                                                        NaN\n",
       "moving_average_alpha                                                      NaN\n",
       "on_perc                                               [None, None, 0.1, None]\n",
       "prune_methods                                                             NaN\n",
       "use_binary_coactivations                                                  NaN\n",
       "weight_prune_perc                                                         NaN\n",
       "Name: 34, dtype: object"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.iloc[34]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "model\n",
       "BaseModel        5\n",
       "DSNNMixedHeb    20\n",
       "SparseModel     10\n",
       "Name: model, dtype: int64"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby('model')[\"model\"].count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Did anything fail?\n",
    "df[df[\"epochs\"] < 30][\"epochs\"].count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [],
   "source": [
    "# helper functions\n",
    "def mean_and_std(s):\n",
    "    return \"{:.3f} ± {:.3f}\".format(s.mean(), s.std())\n",
    "\n",
    "def round_mean(s):\n",
    "    return \"{:.0f}\".format(round(s.mean()))\n",
    "\n",
    "stats = ['min', 'max', 'mean', 'std']\n",
    "\n",
    "def agg(columns, filter=None, round=3):\n",
    "    if filter is None:\n",
    "        return (df.groupby(columns)\n",
    "             .agg({'val_acc_max_epoch': round_mean,\n",
    "                   'val_acc_max': stats,                \n",
    "                   'model': ['count']})).round(round)\n",
    "    else:\n",
    "        return (df[filter].groupby(columns)\n",
    "             .agg({'val_acc_max_epoch': round_mean,\n",
    "                   'val_acc_max': stats,                \n",
    "                   'model': ['count']})).round(round)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "float"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(np.nan)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 150,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['on_perc'][0] is nan"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dense Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>val_acc_max_epoch</th>\n",
       "      <th colspan=\"4\" halign=\"left\">val_acc_max</th>\n",
       "      <th>model</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>round_mean</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>model</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>BaseModel</th>\n",
       "      <td>24</td>\n",
       "      <td>0.964</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.966</td>\n",
       "      <td>0.003</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          val_acc_max_epoch val_acc_max                     model\n",
       "                 round_mean         min   max   mean    std count\n",
       "model                                                            \n",
       "BaseModel                24       0.964  0.97  0.966  0.003     5"
      ]
     },
     "execution_count": 151,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fltr = (df['model'] == 'BaseModel')\n",
    "agg(['model'], fltr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Prune via Hebbian"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>val_acc_max_epoch</th>\n",
       "      <th colspan=\"4\" halign=\"left\">val_acc_max</th>\n",
       "      <th>model</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>round_mean</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>model</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>DSNNMixedHeb</th>\n",
       "      <td>22</td>\n",
       "      <td>0.962</td>\n",
       "      <td>0.966</td>\n",
       "      <td>0.964</td>\n",
       "      <td>0.001</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             val_acc_max_epoch val_acc_max                      model\n",
       "                    round_mean         min    max   mean    std count\n",
       "model                                                                \n",
       "DSNNMixedHeb                22       0.962  0.966  0.964  0.001     5"
      ]
     },
     "execution_count": 155,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fltr = (df['on_perc'] == 0.4) & (df['hebbian_prune_perc'] == 0.3)\n",
    "agg(['model'], fltr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>val_acc_max_epoch</th>\n",
       "      <th colspan=\"4\" halign=\"left\">val_acc_max</th>\n",
       "      <th>model</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>round_mean</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>model</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>DSNNMixedHeb</th>\n",
       "      <td>22</td>\n",
       "      <td>0.961</td>\n",
       "      <td>0.967</td>\n",
       "      <td>0.964</td>\n",
       "      <td>0.003</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             val_acc_max_epoch val_acc_max                      model\n",
       "                    round_mean         min    max   mean    std count\n",
       "model                                                                \n",
       "DSNNMixedHeb                22       0.961  0.967  0.964  0.003     5"
      ]
     },
     "execution_count": 158,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fltr = (df['on_perc'] == 0.1) & (df['hebbian_prune_perc'] == 0.3)\n",
    "agg(['model'], fltr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## SET"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>val_acc_max_epoch</th>\n",
       "      <th colspan=\"4\" halign=\"left\">val_acc_max</th>\n",
       "      <th>model</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>round_mean</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>model</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>DSNNMixedHeb</th>\n",
       "      <td>26</td>\n",
       "      <td>0.962</td>\n",
       "      <td>0.968</td>\n",
       "      <td>0.966</td>\n",
       "      <td>0.002</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             val_acc_max_epoch val_acc_max                      model\n",
       "                    round_mean         min    max   mean    std count\n",
       "model                                                                \n",
       "DSNNMixedHeb                26       0.962  0.968  0.966  0.002     5"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 40% sparse \n",
    "fltr = (df['on_perc'] == 0.4) & (df['weight_prune_perc'] == 0.3)\n",
    "agg(['model'], fltr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>val_acc_max_epoch</th>\n",
       "      <th colspan=\"4\" halign=\"left\">val_acc_max</th>\n",
       "      <th>model</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>round_mean</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>model</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>DSNNMixedHeb</th>\n",
       "      <td>23</td>\n",
       "      <td>0.96</td>\n",
       "      <td>0.967</td>\n",
       "      <td>0.963</td>\n",
       "      <td>0.003</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             val_acc_max_epoch val_acc_max                      model\n",
       "                    round_mean         min    max   mean    std count\n",
       "model                                                                \n",
       "DSNNMixedHeb                23        0.96  0.967  0.963  0.003     5"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 10% sparse \n",
    "fltr = (df['on_perc'] == 0.1) & (df['weight_prune_perc'] == 0.3)\n",
    "agg(['model'], fltr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Static Sparse"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>val_acc_max_epoch</th>\n",
       "      <th colspan=\"4\" halign=\"left\">val_acc_max</th>\n",
       "      <th>model</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>round_mean</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>model</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>SparseModel</th>\n",
       "      <td>24</td>\n",
       "      <td>0.963</td>\n",
       "      <td>0.968</td>\n",
       "      <td>0.965</td>\n",
       "      <td>0.002</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            val_acc_max_epoch val_acc_max                      model\n",
       "                   round_mean         min    max   mean    std count\n",
       "model                                                               \n",
       "SparseModel                24       0.963  0.968  0.965  0.002     5"
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 40% sparse \n",
    "fltr = (df['on_perc'] == 0.4) & (df['weight_prune_perc'] == 0.0)& (df['hebbian_prune_perc'] == 0.0)\n",
    "agg(['model'], fltr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>val_acc_max_epoch</th>\n",
       "      <th colspan=\"4\" halign=\"left\">val_acc_max</th>\n",
       "      <th>model</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>round_mean</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>model</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>SparseModel</th>\n",
       "      <td>22</td>\n",
       "      <td>0.962</td>\n",
       "      <td>0.965</td>\n",
       "      <td>0.964</td>\n",
       "      <td>0.001</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            val_acc_max_epoch val_acc_max                      model\n",
       "                   round_mean         min    max   mean    std count\n",
       "model                                                               \n",
       "SparseModel                22       0.962  0.965  0.964  0.001     5"
      ]
     },
     "execution_count": 163,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 10% sparse \n",
    "fltr = (df['on_perc'] == 0.1) & (df['weight_prune_perc'] == 0.0)& (df['hebbian_prune_perc'] == 0.0)\n",
    "agg(['model'], fltr)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
